﻿Public Class xtf_ABMcentrocostoorden

    Dim ulg_row As DataRow
    Dim obj_centrocostoorden As cls_centrocostoorden_ = Nothing

    Public Sub New()
        InitializeComponent()
        AgregarValidaciones()
        Cargarpersonal_()
        Cargarcliente_()
        cargarCombo(cbo_tipo, GetType(cls_centrocostoorden_.enu_tipo))
        cargarCombo(cbo_tipoobra, GetType(cls_centrocostoorden_.enu_tipoobra))
        cargarCombo(cbo_estado, GetType(cls_centrocostoorden_.enu_estado))


        dtp_fechainicio.DateTime = Now.Date
        dtp_fechafin.DateTime = Now.Date
        dtp_fechaestado.DateTime = Now.Date

    End Sub

    Private Sub Cargarpersonal_()
        Dim tmp_obj As Integer = 0
        tmp_obj = cbo_personal.EditValue
        Dim personal_ As New cls_personal_
        personal_.CargarTodos()
        cargarCombo(cbo_personal, personal_.Items, False, True)
        cbo_personal.EditValue = IIf(tmp_obj <> 0, tmp_obj, cbo_personal.EditValue)
    End Sub

    Private Sub Cargarcliente_()
        Dim tmp_obj As Integer = 0
        tmp_obj = cbo_cliente.EditValue
        Dim cliente_ As New cls_cliente_
        cliente_.CargarTodos(True)
        cargarCombo(cbo_cliente, cliente_.Items, False, True)
        cbo_cliente.EditValue = IIf(tmp_obj <> 0, tmp_obj, cbo_cliente.EditValue)
    End Sub

    Public Shadows Sub Nuevo(ByRef listado As Form)
        Try
            frm_listado = listado
            Me.Text = CType(frm_listado, xtf_ListadoBase).lbl_modulo.Text & " - Nuevo"
            obj_centrocostoorden = New cls_centrocostoorden_
            btn_Registro.Enabled = False
            Me.Show()
        Catch ex As Exception
            'Dim frmError As New frm_ErrorManager(ex.Message)
        End Try
    End Sub

    Public Shadows Sub Modificar(ByRef centrocostoorden As cls_centrocostoorden_, ByRef listado As Form, ByRef row As DataRow)
        If IsNothing(obj_centrocostoorden) Then
            obj_centrocostoorden = New cls_centrocostoorden_
        End If
        obj_centrocostoorden = centrocostoorden
        frm_listado = listado
        ulg_row = row : bbi_imprimir.Enabled = True

        Me.Text = CType(frm_listado, xtf_ListadoBase).lbl_modulo.Text & " - " & obj_centrocostoorden.ToString
        txt_ID.Text = obj_centrocostoorden.idcentrocostoorden
        txt_codigo.Text = obj_centrocostoorden.codigo
        cbo_tipo.EditValue = obj_centrocostoorden.tipo
        cbo_tipoobra.EditValue = obj_centrocostoorden.tipoobra
        txt_nombrecorto.Text = obj_centrocostoorden.nombrecorto
        txt_observaciones.Text = obj_centrocostoorden.observaciones
        cbo_personal.EditValue = obj_centrocostoorden.idpersonal
        cbo_cliente.EditValue = obj_centrocostoorden.idcliente
        dtp_fechainicio.DateTime = obj_centrocostoorden.fechainicio
        dtp_fechafin.DateTime = obj_centrocostoorden.fechafin
        cbo_estado.EditValue = obj_centrocostoorden.estado
        dtp_fechaestado.DateTime = obj_centrocostoorden.fechaestado
        txt_motivoestado.Text = obj_centrocostoorden.motivoestado


        btn_Registro.Enabled = True
        cbo_tipo_EditValueChanged(Nothing, Nothing)
        Me.Show()

    End Sub

    Public Overrides Function ComprobarDatos() As Boolean
        If Not ControlarValidaciones() Then
            ErrManagerShow("000004", Me)
            Return False
        End If
        Return True
    End Function

    Public Shadows Sub btn_Guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Guardar.Click
        If ComprobarDatos() Then
            obj_centrocostoorden.codigo = txt_codigo.Text
            obj_centrocostoorden.tipo = cbo_tipo.EditValue
            obj_centrocostoorden.tipoobra = cbo_tipoobra.EditValue
            obj_centrocostoorden.nombrecorto = txt_nombrecorto.Text
            obj_centrocostoorden.observaciones = txt_observaciones.Text
            obj_centrocostoorden.idpersonal = cbo_personal.EditValue

            obj_centrocostoorden.idcliente = cbo_cliente.EditValue
            obj_centrocostoorden.fechainicio = dtp_fechainicio.DateTime
            obj_centrocostoorden.fechafin = dtp_fechafin.DateTime
            obj_centrocostoorden.estado = cbo_estado.EditValue
            obj_centrocostoorden.fechaestado = dtp_fechaestado.DateTime
            obj_centrocostoorden.motivoestado = txt_motivoestado.Text


            If txt_ID.Text = "" Then
                obj_centrocostoorden.Nuevo(True)
                If frm_listado.Visible Then
                    ulg_row = CType(frm_listado, xtf_LISTADOcentrocostoorden_).AgregarItem(obj_centrocostoorden)
                End If
                Modificar(obj_centrocostoorden, frm_listado, ulg_row)
            Else
                obj_centrocostoorden.Modificar()
                If frm_listado.Visible Then
                    CType(frm_listado, xtf_LISTADOcentrocostoorden_).ModificarItem(obj_centrocostoorden, ulg_row)
                End If
                Modificar(obj_centrocostoorden, frm_listado, ulg_row)
            End If
            flg_Modificado = False : btn_Guardar.Enabled = False : bbi_guardar.Enabled = False
        End If
    End Sub

    Private Sub btn_Registro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Registro.Click
        If Not IsNothing(obj_centrocostoorden.registro) Then
            Dim ABMRegistro As New xtf_ABMRegistro(obj_centrocostoorden.registro)
            If ABMRegistro.ShowDialog() = Windows.Forms.DialogResult.OK Then
                flg_Modificado = True
            End If
        End If
    End Sub


    Private Sub btn_Cerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Cerrar.Click
        If flg_Modificado Then
            bol_comprobarCerrado = False
            Select Case ErrManagerShow("000001", Me)
                Case Windows.Forms.DialogResult.Yes
                    If ComprobarDatos() Then
                        btn_Guardar_Click(Nothing, Nothing)
                    Else
                        Exit Sub
                    End If
                Case Windows.Forms.DialogResult.Cancel : bol_comprobarCerrado = True
                    Exit Sub
            End Select
        End If
        Me.Dispose()
    End Sub

    Private Sub cbo_tipo_EditValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbo_tipo.EditValueChanged
        If cbo_tipo.EditValue = cls_centrocostoorden_.enu_tipo.obra Then
            cbo_tipoobra.Enabled = True
            lcg_fechas.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
        Else
            cbo_tipoobra.Enabled = False
            lcg_fechas.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
        End If
    End Sub

    Private Sub cbo_tipo_EnabledChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbo_tipo.EnabledChanged

    End Sub

    Private Sub cbo_tipoobra_EnabledChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbo_tipoobra.EnabledChanged
        If cbo_tipo.EditValue <> cls_centrocostoorden_.enu_tipo.obra Then
            cbo_tipoobra.Enabled = False
        End If
    End Sub
End Class